#pragma once

/*
    noncopyable
   被继承以后，派生类对象可以正常构造和析构，但是派生类对象无法进行构造和复制
*/

class noncopyable {
  public:
    noncopyable(const noncopyable &) = delete;
    void operator=(const noncopyable &) = delete;

  protected:
    noncopyable() = default;
    ~noncopyable() = default;
};